package com.haide.channel.pro.pojo.dto;

import lombok.*;

import java.util.List;

/**
 * 代还-请求
 * <p>
 * 1.
 * </p>
 *
 * @author : wukong
 * @version : 1.0.0
 * @date : 2018/7/18
 */
@Getter
@Setter
@ToString
public class CreateRepayReqDto {

    /**
     * 合作商代还计划订单id
     */
    private String repay_order_id;
    /**
     * 绑卡回调接口返回的card_id，平台银行卡id
     */
    private String bank_card_id;
    /**
     * 用户手机号
     */
    private String cooperator_user_phone;
    /**
     * 费率，单位百分之多少，如0.7%传0.7
     */
    private double rate;
    /**
     * 商户代付成本(单位分),不小于50分，最终每笔的扣款金额是代扣金额+代付成本
     */
    private double cost;
    /**
     * 通道类型，目前支持0和1,1-新通道,银联二维码,小额,支持所有银行,0-老通道,北京银联,大额,支持部分银行;不传默认走老通道
     */
    private char channel_type;
    /**
     * 省份名称，请通过“区域查询接口”查询支持的省份,如填错会影响到扣款失败,注意,当channelType值为1时,该字段为必传
     */
    private String province_name;
    /**
     * 城市名称，请通过“区域查询接口”查询支持的城市,如填错会影响到扣款失败,注意,当channelType值为1时,该字段为必传
     */
    private String city_name;
    /**
     * 设备号,取手机的设备号,注意,当channelType值为1时,该字段为必传
     */
    private int device_id;
    /**
     * 落地商户银联绑卡成功后跳转的页面
     */
    private String union_callback_url;
    /**
     * 代还模式 1为一扣一还，2为多扣一传，此参数可以不传
     */
    private String repay_mode;
    /**
     * 代还计划明细列表，可以有多笔，单笔
     */
    private List<RepayItemListBean> repayItemList;

    @NoArgsConstructor
    @Data
    public static class RepayItemListBean {
        /**
         * 代扣时间，为了保证能正常进行代扣代还，请确认时间间隔在一个小时以上,例如有多笔还款计划的第一
         * 笔的代扣时间和第一笔的代还时间间隔要一个小时,第二笔还款计划的代扣时间要与第一笔代还时间间隔超过一个小时,
         * 以此类推，代扣时间要早于代还时间,不得早于当前时间,代还时间不得超过当前时间一个月，
         * 代扣代还时间需在11点-21点之间
         */
        private String trade_time;
        /**
         * 代还时间,规则参考代扣时间
         */
        private String transfer_time;
        /**
         * 代扣金额（单位分），单位分,当出现小于分的数时,需四舍五入精确到分，代扣金额 = 代还金额 + 手续费(注意单位)
         */
        private int trade_amount;
        /**
         * 代还金额，单位分,当出现小于分的数时,需四舍五入精确到分
         */
        private int transfer_amount;
        /**
         * 该笔手续费，单位分,当出现小于分的数时,需四舍五入精确到分
         */
        private int fee;
        /**
         * 合作商该笔代扣代还的订单号
         */
        private String cooperator_item_id;
        /**
         * 1 扣款，2 还款
         */
        private char repay_item_type;
        /**
         * 还款记录的单笔订单号cooper_item_id
         * 标识该item扣还款对应的订单，当repay_mode（代还模式）为2时，该字段必填。
         * 如果是扣款订单则填写对应还款订单的cooperator_item_id，
         * 如果是还款订单填写自身的cooperator_item_id
         */
        private String cooperator_transfer_item_id;
        /**
         * 行业类型id, 只有新通道银联二维码才支持,
         */
        private String mcc_class_id;
    }
}
